Skip to content

feat: expose is_prebuild_claim attribute#396

Merged
dannykopping merged 2 commits into
mainfrom
dk/is-prebuild-claim
May 9, 2025
Merged

feat: expose is_prebuild_claim attribute#396
dannykopping merged 2 commits into
mainfrom
dk/is-prebuild-claim

Conversation

@dannykopping
Copy link
Copy Markdown
Contributor

@dannykopping dannykopping commented May 9, 2025

Template authors may need to augment their templates to execute scripts once a prebuilt workspace has been claimed.

is_prebuild_claim will be set only when a prebuilt workspace has just been claimed and its subsequent terraform apply is in progress.

Also adds some missing tests to ensure correct input (environment variables) handling.

Can be used in a template like so:

resource "coder_agent" "main" {
  arch           = data.coder_provisioner.me.arch
  os             = "linux"
  startup_script = <<-EOT
    set -e
if [[ "${data.coder_workspace.me.is_prebuild}" = "true" ]]; then
  echo "Created at $(date)" > ~/.prebuild_note # persists across restarts
fi
  EOT

  metadata {
    display_name = "Was Prebuild"
    key          = "prebuild"
    script       = "[[ -e ~/.prebuild_note ]] && echo 'Yes' || echo 'No'"
    interval     = 10
    timeout      = 1
  }
  metadata {
    display_name = "Was Claimed"
    key          = "prebuild_claim"
    script       = "[ '${data.coder_workspace.me.is_prebuild_claim}' = 'true' ] && echo 'Yes' || echo 'No'"
    interval     = 10
    timeout      = 1
  }
}

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
@dannykopping dannykopping requested a review from SasSwart May 9, 2025 12:08
Signed-off-by: Danny Kopping <dannykopping@gmail.com>
@dannykopping dannykopping merged commit 50ed1c1 into main May 9, 2025
6 checks passed
@dannykopping dannykopping deleted the dk/is-prebuild-claim branch May 9, 2025 16:44
@github-actions github-actions Bot locked and limited conversation to collaborators May 9, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants